package cn.gxljc.technology.store_management.scontroller.superadimcontroller;

import cn.gxljc.technology.store_management.service.superadminservice.SuperAdminService;
import com.alibaba.fastjson.JSONObject;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;

/**
 * 功能：主要用于处理所有有关超级管理员业务的请求
 * 作者：7214
 */
@RestController
@RequestMapping("/SuperAdmin")
public class SuperAdminController {

    @Resource
    private SuperAdminService superAdminService;

    /**
     * 请求：分配账号
     * 输入参数：accountID（账户ID），accountName(密码)
     * 输出参数：result（结果——表示执行结果，0代表成功，-1代表参数为空）
     */
    //http://localhost:8081/SuperAdmin/createAccount?accountID=123&&accountName=test
    @GetMapping("/createAccount")
    public String createAccount(HttpServletRequest request) {
        //获取参数
        String accountID = request.getParameter("accountID");
        String accountName = request.getParameter("accountName");
        JSONObject jsonObject = new JSONObject();
        jsonObject.put("method", "createAccount");
        System.out.println(accountID);
        System.out.println(accountName);
        //非空判断
        if (accountID == null || accountName == null) {
            jsonObject.put("result", -1);
            return jsonObject.toJSONString();
        }
        //执行业务操作
        Integer account = superAdminService.createAccount(Integer.parseInt(accountID), accountName);
        jsonObject.put("result", account);
        return jsonObject.toJSONString();
    }

    /**
     * 请求：删除账号
     * 输入参数：accountID（账户ID）
     * 输出参数：result,0（代表删除成功），-1（代表删除失败），-2（代表没有该账号）
     */
    //http://localhost:8081/SuperAdmin/deleteAccount?accountID=123
    @GetMapping("/deleteAccount")
    public String deleteAccount(HttpServletRequest request) {
        //获取参数
        String accountID = request.getParameter("accountID");
        JSONObject jsonObject = new JSONObject();
        jsonObject.put("method", "deleteAccount");
        //非空判断
        if (accountID == null) {
            jsonObject.put("result", -1);
            return jsonObject.toJSONString();
        }
        //执行业务逻辑
        Integer integer = superAdminService.deleteAccount(Integer.parseInt(accountID));
        jsonObject.put("result", integer);
        return jsonObject.toJSONString();
    }

    /**
     * 功能：设置权限
     * 输入参数：账号（被赋予权限的账号）,类型（被赋予权限的类型）
     * 输出参数：0（代表分配成功）,-1（代表分配失败），-2（代表账号不存在）,-3(代表权限类型不存在)
     */
    //http://localhost:8081/SuperAdmin/setAuthority?accountID=123&&type=0
    @GetMapping("/setAuthority")
    public String setAuthority(HttpServletRequest request) {
        //获取参数
        String accountID = request.getParameter("accountID");
        String type = request.getParameter("type");
        JSONObject jsonObject = new JSONObject();
        jsonObject.put("method", "setAuthority");
        //非空判断
        if (accountID == null || type == null) {
            jsonObject.put("result", -1);
            return jsonObject.toJSONString();
        }
        //执行业务逻辑
        Integer integer = superAdminService.setAuthority(Integer.parseInt(accountID), Integer.parseInt(type));
        jsonObject.put("result", integer);
        return jsonObject.toJSONString();
    }

}
